/**
 * 公共工具函数
 */

/**
 * 将Unix时间戳转换为日期字符串 YYYY-MM-DD
 * @param {number} timestamp - Unix时间戳（秒）
 * @returns {string} - 格式化后的日期字符串
 */
function formatTimestamp(timestamp) {
  if (!timestamp) return '';
  const date = new Date(timestamp * 1000);
  const year = date.getFullYear();
  const month = (date.getMonth() + 1).toString().padStart(2, '0');
  const day = date.getDate().toString().padStart(2, '0');
  return `${year}-${month}-${day}`;
}

/**
 * 将Unix时间戳转换为日期时间字符串 YYYY-MM-DD HH:MM
 * @param {number} timestamp - Unix时间戳（秒）
 * @returns {string} - 格式化后的日期时间字符串
 */
function formatTimestampWithTime(timestamp) {
  if (!timestamp) return '';
  const date = new Date(timestamp * 1000);
  const year = date.getFullYear();
  const month = (date.getMonth() + 1).toString().padStart(2, '0');
  const day = date.getDate().toString().padStart(2, '0');
  const hours = date.getHours().toString().padStart(2, '0');
  const minutes = date.getMinutes().toString().padStart(2, '0');
  return `${year}-${month}-${day} ${hours}:${minutes}`;
}

/**
 * 将Date对象转换为日期字符串 YYYY-MM-DD
 * @param {Date} date - Date对象
 * @returns {string} - 格式化后的日期字符串
 */
function formatDate(date) {
  if (!date || !(date instanceof Date)) return '';
  const year = date.getFullYear();
  const month = (date.getMonth() + 1).toString().padStart(2, '0');
  const day = date.getDate().toString().padStart(2, '0');
  return `${year}-${month}-${day}`;
}

/**
 * 将Date对象转换为时间字符串 HH:MM
 * @param {Date} date - Date对象
 * @returns {string} - 格式化后的时间字符串
 */
function formatTime(date) {
  if (!date || !(date instanceof Date)) return '';
  const hours = date.getHours().toString().padStart(2, '0');
  const minutes = date.getMinutes().toString().padStart(2, '0');
  return `${hours}:${minutes}`;
}

/**
 * 将Date对象转换为日期时间字符串 YYYY-MM-DD HH:MM
 * @param {Date} date - Date对象
 * @returns {string} - 格式化后的日期时间字符串
 */
function formatDateTime(date) {
  if (!date || !(date instanceof Date)) return '';
  const dateStr = formatDate(date);
  const timeStr = formatTime(date);
  return `${dateStr} ${timeStr}`;
}

module.exports = {
  formatTimestamp,
  formatTimestampWithTime,
  formatDate,
  formatTime,
  formatDateTime
}; 